<?php

class RetribusiPribadiController extends Controller {

    /**
     * @var string the default layout for the views. Defaults to '//layouts/column2', meaning
     * using two-column layout. See 'protected/views/layouts/column2.php'.
     */
    public $layout = '//layouts/column1';
    public $title = 'WajibPajak/Retribusi Pribadi';

    /**
     * @return array action filters
     */
    public function filters() {
        return array(
            'accessControl', // perform access control for CRUD operations
            'postOnly + delete', // we only allow deletion via POST request
        );
    }

    /**
     * Specifies the access control rules.
     * This method is used by the 'accessControl' filter.
     * @return array access control rules
     */
    public function accessRules() {
        return array(
            array('allow', // allow all users to perform 'index' and 'view' actions
                'actions' => array('index', 'view'),
                'users' => array('*'),
            ),
            array('allow', // allow authenticated user to perform 'create' and 'update' actions
                'actions' => array('create', 'update'),
                'users' => array('@'),
            ),
            array('allow', // allow admin user to perform 'admin' and 'delete' actions
                'actions' => array('admin', 'delete', 'EntryWp', 'Loadcities', 'Select', 'LoadKelurahan'),
                'users' => array('admin'),
            ),
            array('deny', // deny all users
                'users' => array('*'),
            ),
        );
    }

    /**
     * Displays a particular model.
     * @param integer $id the ID of the model to be displayed
     */
    public function actionView($id) {

        $this->render('view', array(
            'model' => $this->loadModel($id),
        ));
    }

    public function actionLoadKelurahan() {
//        $kode_kec = $_POST['kd_kec'];
//        $data = Kelurahan::model()->findAll("kode_kec ='" . $kode_kec . "'");
//        echo CJSON::encode($data);
        $kode_kec = $_POST['kd_kec'];
        $kelurahans = Kelurahan::model()->findAll(array("condition" => "kode_kec='$kode_kec'", "order" => "kode_kel"));
        $i = 0;
        //var_dump($kelurahans[0]['kd_kelurahan']);
        foreach ($kelurahans as $kelurahan):
            $data[$i] = $kelurahan->kode_kel . '-' . $kelurahan->nama_kel;
            //$data[$i]['kode'] = $kelurahan->kd_kelurahan;
            $i++;
        endforeach;
        //var_dump($data);
        echo json_encode($data);
        if ($data != null) {
            //echo CHtml::tag('option', array('value' => ""), CHtml::encode("Kode - Kelurahan"), true);
            foreach ($data as $value => $name) {
                //  echo CHtml::tag('option', array('value' => $value), CHtml::encode($name), true);
            }
        } else {
            //echo CHtml::tag('option', array('value' => ''), CHtml::encode('Kelurahan Belum Tersedia'), true);
        }
    }

    public function actionSelect() {
        $TandaBukti = $_POST['nomor_induk'];
        $TandaJns = $_POST['jns'];
        $data = PemilikWp::model()->find("nomor_induk ='" . $TandaBukti . "' AND bukti_diri='" . $TandaJns . "'");
        echo CJSON::encode($data);
    }

    public function actionEntryWp() {

        $model = new PemilikWp;
        $modelKelurahan = new Kelurahan;

        // Uncomment the following line if AJAX validation is needed
        // $this->performAjaxValidation($model);
//                    if (isset($_POST['PemilikWp'])) {
//            echo"<pre>";
//            print_r($_POST);
//            echo"</pre";
//            exit();
//
//        }



        if (isset($_POST['PemilikWp'])) {

            $arrayNoInduk = $_POST['no_induk'];

            $no = '';
            for ($i = 0; $i < count($arrayNoInduk); $i++) {
                $no.=$arrayNoInduk[$i]; //menghubungkan string nik
            }
            $model->nomor_induk = $no;
            $model->nama_pemilik = $_POST['PemilikWp']['nama_pemilik'];
            $model->tanggal_lahir = HelperUtils::tglToDb($_POST['PemilikWp']['tanggal_lahir']);
            $model->tempat_lahir = $_POST['PemilikWp']['tempat_lahir'];
            $model->jenis_kelamin = $_POST['PemilikWp']['jenis_kelamin'];
            $model->alamat_pemilik = $_POST['PemilikWp']['alamat_pemilik'];
            $model->rt = $_POST['PemilikWp']['rt'];
            $model->rw = $_POST['PemilikWp']['rw'];
            $model->kelurahan = $_POST['PemilikWp']['kelurahan'];
            $model->kecamatan = $_POST['PemilikWp']['kecamatan'];
            $model->kabupaten = $_POST['PemilikWp']['kabupaten'];
            $model->warga_negara = $_POST['PemilikWp']['warga_negara'];
            $model->kode_pos = $_POST['PemilikWp']['kode_pos'];
            $model->status_aktif = 'T';
            $model->tanggal = $_POST['PemilikWp']['tanggal'];
            $model->bukti_diri = $_POST['PemilikWp']['bukti_diri'];


            $transaction = Yii::app()->db->beginTransaction();
            try {
                if ($model->save()) {
                    $transaction->commit();
                    Yii::app()->user->setFlash('success', '<strong>Selamat!!</strong> Data Identitas Wajib Pajak Berhasil Disimpan.');
                    $this->redirect(array('EntryWp'));
                }
            } catch (Exception $e) {
                $transaction->rollback();
                throw new CHttpException(400, $e->getMessage());
            }
        }
        $this->render('EntryWp', array(
            'model' => $model,
            'modelKelurahan' => $modelKelurahan,
        ));
    }

    /**
     * Creates a new model.
     * If creation is successful, the browser will be redirected to the 'view' page.
     */
    public function actionCreate() {
        $model = new WpPribadi;
        $modelPemilikWp = new PemilikWp;
        $modelDataNpwpd = new DataNpwpd;
        $modelKecamatan = new Kecamatan; //aku nambahin ini men
        $modelKelurahan = new Kelurahan;
        //$modelKelurahan = new Kelurahan; //aku tambahin ini men
        // Uncomment the following line if AJAX validation is needed
        // $this->performAjaxValidation($model);



        if (isset($_POST['WpPribadi']) && isset($_POST['DataNpwpd'])) {
//            $model->nomor_induk = $_POST['WpPribadi']['nomor_induk'];
//            $model->no_telepon = $_POST['WpPribadi']['no_telepon'];
//            $model->nomor_kk = $_POST['WpPribadi']['nomor_kk'];
//            $model->tanggal_kk = HelperUtils::tglToDb($_POST['WpPribadi']['tanggal_kk']);
//            $model->pekerjaan_usaha = $_POST['WpPribadi']['pekerjaan_usaha'];
//            $model->nama_instansi = $_POST['WpPribadi']['nama_instansi'];
//            $model->alamat_instansi = $_POST['WpPribadi']['alamat_instansi'];
//            $model->status_aktif = 'T';
//            $model->tanggal = date('y-m-d');
//            $modelDataNpwpd->nomor_urut = $_POST['DataNpwpd']['nomor_urut'];
//            $modelDataNpwpd->no_formulir = $_POST['DataNpwpd']['no_formulir'];
//            $modelDataNpwpd->npwpd = $_POST['DataNpwpd']['nomor_urut'];
//            $modelDataNpwpd->nama_npwpd = $_POST['DataNpwpd']['no_formulir'];
//            $modelDataNpwpd->nama_npwpd = $_POST['DataNpwpd']['nomor_urut'];
//            $modelDataNpwpd->alamat_npwpd = $_POST['DataNpwpd']['no_formulir'];
//            $modelDataNpwpd->rt_npwpd = $_POST['DataNpwpd']['nomor_urut'];
//            $modelDataNpwpd->rw_npwpd = $_POST['DataNpwpd']['no_formulir'];
//            $modelDataNpwpd->kelurahan_npwpd = $_POST['DataNpwpd']['kelurahan'];
//            $modelDataNpwpd->kecamatan_npwpd = $_POST['DataNpwpd']['kecamatan'];
//            $modelDataNpwpd->kabupaten_npwpd = $_POST['DataNpwpd']['kabupaten'];
//            $modelDataNpwpd->nopd = $_POST['DataNpwpd']['warga_negara'];
//            $modelDataNpwpd->tanggal_pendataan = HelperUtils::tglToDb($_POST['DataNpwpd']['tanggal_pendataan']);
//            $modelDataNpwpd->petugas_pendataan = $_POST['DataNpwpd']['petugas_pendataan'];
//            $modelDataNpwpd->nip_pendataan = $_POST['DataNpwpd']['nip_pendataan'];
//            $modelDataNpwpd->petugas_pencatatan = $_POST['DataNpwpd']['petugas_pencatatan'];
//            $modelDataNpwpd->nip_pencatatan = $_POST['DataNpwpd']['nip_pencatatan'];
//            $modelDataNpwpd->cara_hitung = $_POST['DataNpwpd']['cara_hitung'];
//            $modelDataNpwpd->p_hotel = $_POST['DataNpwpd']['p_hotel'];
//            $modelDataNpwpd->p_restoran = $_POST['DataNpwpd']['p_restoran'];
//            $modelDataNpwpd->p_hiburan = $_POST['DataNpwpd']['p_hiburan'];
//            $modelDataNpwpd->p_reklame = $_POST['DataNpwpd']['p_reklame'];
//            $modelDataNpwpd->p_ppj = $_POST['DataNpwpd']['p_ppj'];
//            $modelDataNpwpd->status_aktif = 'T';
//            $transaction = Yii::app()->db->beginTransaction();
//            try {
//                if ($model->save()) {
//                    $transaction->commit();
//                    Yii::app()->user->setFlash('success', '<strong>Selamat!!</strong> Data Identitas Wajib Pajak Berhasil Disimpan.');
//                    $this->redirect(array('EntryWp'));
//                }
//            } catch (Exception $e) {
//                $transaction->rollback();
//                throw new CHttpException(400, $e->getMessage());
//            }
        }


        $this->render('create', array(
            'model' => $model,
            'modelPemilikWp' => $modelPemilikWp,
            'modelDataNpwpd' => $modelDataNpwpd,
            'modelKecamatan' => $modelKecamatan, //sama nambahin ini, kenapa di view form g teridentifikasi ya men?
            'modelKelurahan' => $modelKelurahan,
        ));
    }

    /**
     * Updates a particular model.
     * If update is successful, the browser will be redirected to the 'view' page.
     * @param integer $id the ID of the model to be updated
     */
    public function actionUpdate($id) {
        $model = $this->loadModel($id);

        // Uncomment the following line if AJAX validation is needed
        // $this->performAjaxValidation($model);

        if (isset($_POST['WpPribadi'])) {
            $model->attributes = $_POST['WpPribadi'];
            if ($model->save())
                $this->redirect(array('view', 'id' => $model->npwpd_pribadi));
        }

        $this->render('update', array(
            'model' => $model,
        ));
    }

    /**
     * Deletes a particular model.
     * If deletion is successful, the browser will be redirected to the 'admin' page.
     * @param integer $id the ID of the model to be deleted
     */
    public function actionDelete($id) {
        $this->loadModel($id)->delete();

        // if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
        if (!isset($_GET['ajax']))
            $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
    }

    /**
     * Lists all models.
     */
    public function actionIndex() {
        $dataProvider = new CActiveDataProvider('WpPribadi');
        $this->render('index', array(
            'dataProvider' => $dataProvider,
        ));
    }

    /**
     * Manages all models.
     */
    public function actionAdmin() {
        $model = new WpPribadi('search');
        $model->unsetAttributes();  // clear any default values
        if (isset($_GET['WpPribadi']))
            $model->attributes = $_GET['WpPribadi'];

        $this->render('admin', array(
            'model' => $model,
        ));
    }

    /**
     * Returns the data model based on the primary key given in the GET variable.
     * If the data model is not found, an HTTP exception will be raised.
     * @param integer $id the ID of the model to be loaded
     * @return WpPribadi the loaded model
     * @throws CHttpException
     */
    public function loadModel($id) {
        $model = WpPribadi::model()->findByPk($id);
        if ($model === null)
            throw new CHttpException(404, 'The requested page does not exist.');
        return $model;
    }

    /**
     * Performs the AJAX validation.
     * @param WpPribadi $model the model to be validated
     */
    protected function performAjaxValidation($model) {
        if (isset($_POST['ajax']) && $_POST['ajax'] === 'wp-pribadi-form') {
            echo CActiveForm::validate($model);
            Yii::app()->end();
        }
    }

}
